package com.hevs.samplewebapp.client.services;

import com.google.gwt.json.client.JSONObject;
import com.hevs.samplewebapp.client.bean.CompositeWRefresh;
/**
 * Interface for the User administrations services.
 * 
 * @author Thomas Rouvinez
 * @Date: 23.04.2012
 */
public abstract interface UserAdministrationService {
	
	/**
	 * Method to get a list of all users in the system.
	 * @param comp
	 * Graphical component to refresh
	 */
	public abstract void getUsers(CompositeWRefresh comp);
	
	/**
	 * Method to create a user.
	 * @param user
	 * user to create
	 */
	public abstract void create(JSONObject user);
	
	/**
	 * Method to update a user.
	 * @param user
	 * user to update
	 */
	public abstract void update(JSONObject user);
	
	/**
	 * Method to change password.
	 * @param user
	 * user to change password
	 */
	public abstract void resetPassword(JSONObject user);
	
	/**
	 * Method to delete a user.
	 * @param user
	 * user to delete
	 */
	public abstract void delete(JSONObject user);
}
